package com.nbsaas.boot.user.api.domain.request;

import com.nbsaas.boot.rest.enums.DataScope;
import com.nbsaas.boot.rest.enums.State;
import com.nbsaas.boot.rest.filter.Operator;
import com.nbsaas.boot.rest.filter.Search;
import com.nbsaas.boot.rest.request.PageRequest;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * 用户-搜索bean
 */
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UserInfoSearch extends PageRequest implements Serializable {

    /**
     * 序列化参数
     */
    private static final long serialVersionUID = 1L;

    /**
     * 手机号码
     **/
    @Search(name = "phone", operator = Operator.like)
    private String phone;
    /**
     * 用户类型
     **/
    @Search(name = "catalog", operator = Operator.eq)
    private Integer catalog;
    /**
     * 用户真实姓名
     **/
    @Search(name = "name", operator = Operator.like)
    private String name;
    /**
     * 部门ids
     **/
    @Search(name = "structure.ids", operator = Operator.likePrefix)
    private String structureIds;
    /**
     * 用户状态
     **/
    @Search(name = "state", operator = Operator.eq)
    private State state;
    /**
     * 用户类型
     **/
    @Search(name = "userType", operator = Operator.eq)
    private Integer userType;
    /**
     * 数据范围
     **/
    @Search(name = "dataScope", operator = Operator.eq)
    private DataScope dataScope;
    /**
     * 所在组织
     **/
    @Search(name = "structure.id", operator = Operator.eq)
    private Long structure;


}